<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="../js/jquery-3.6.0.min.js"></script>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        li {
            list-style: none;
        }

        .wrap {
            padding: 8px;
        }

        .list {
            margin-top: 10px;
        }

        .list li {
            height: 40px;
            line-height: 40px;
            text-indent: 10px;
            border: 1px dashed #333;
        }

        .list li+li {
            border-top: 0;
        }
    </style>
</head>

<body>
    <div class="wrap">
        <h2 id="title">jquery元素获取</h2>
        <ul class="list">
            <div>123123123</div>
            <li class="first">01</li>
            <li>02</li>
            <li class="mid">03</li>
            <li>04</li>
            <li>05</li>
            <li class="last"><span class="sp">06</span></li>
        </ul>
    </div>
</body>
<script>
    // jquery 过滤 => 从集合(jquery对象)中找到满足条件的元素

    // jquery遍历

    // each()
    // $(".list li").each(function (i, item) {
    //     console.log(i, item, this);
    // })

    // map()  遍历jquery对象,每次循环时执行对应的回调函数 => 根据回调函数的返回值 得到一个新的jquery对象
    // var $list = $(".list li").map(function (i, item) {
    //     // console.log(i, item, this);
    //     return $(this).text();
    // })
    // console.log($list);

    // var list = $(".list li").map(function (i, item) {
    //     // console.log(i, item, this);
    //     return $(this).text();
    // }).get();
    // console.log(list);


    // filter()  筛选出满足条件的元素

    // (1)  传入一个回调函数   =>  每次循环时执行对应的回调函数 =>  回调函数返回一个条件 => 把满足条件的元素放到新的jquery对象中
    // $(".list li").filter(function (i, item) {
    //     console.log(i, item, this);
    //     // return $(this).hasClass("mid");  // 含有class名mid
    //     // return $(this).attr("class");
    //     return $(this).prop("className");
    // }).css({ background: "red" });

    // (2)  传入一个css选择器
    // $(".list li").filter(".mid").css({ background: "red" });
    // $(".list li").filter("[class]").css({ background: "red" });


    // (3)  传入一个原生DOM元素/DOM元素集合
    // var lis = document.querySelectorAll(".first,.last");
    // $(".list li").filter(lis).css({ background: "red" });

    // (4)  传入jquery对象
    // $(".list li").filter($(".mid")).css({ background: "red" });


    // not()   从集合中删除满足条件的元素  => 筛选出不满足条件的元素
    // (1)  传入一个回调函数   =>  每次循环时执行对应的回调函数 =>  回调函数返回一个条件 => 把满足条件的元素放到新的jquery对象中
    // $(".list li").not(function (i, item) {
    //     console.log(i, item, this);
    //     // return $(this).hasClass("mid");  // 含有class名mid
    //     // return $(this).attr("class");
    //     return $(this).prop("className");
    // }).css({ background: "red" });

    // (2)  传入一个css选择器
    // $(".list li").not(".mid").css({ background: "red" });
    // $(".list li").not("[class]").css({ background: "red" });


    // (3)  传入一个原生DOM元素/DOM元素集合
    // var lis = document.querySelectorAll(".first,.last");
    // $(".list li").not(lis).css({ background: "red" });

    // (4)  传入jquery对象
    // $(".list li").not($(".mid")).css({ background: "red" });


    // is()    判断集合中是否存在满足条件的元素(类似数组some)
    // 单元素 => 精确判断
    // 多元素 => 有一个满足条件即可

    // var flag = $(".list li").is(function (i, item) {
    //     // return $(this).prop("className");  //有class名 => true
    //     return $(this).text().includes("3");
    // });
    // console.log(flag);

    // (2)  传入一个css选择器
    // console.log($(".list li").eq(0).is(".first"));
    // console.log($(".list li").eq(0).parent().is(".list"));
    // console.log($(".list li").is(".mid"));


    // (3)  传入一个原生DOM元素/DOM元素集合
    // var lis = document.querySelectorAll(".first,.last");
    // console.log($(".list li").is(lis));

    // (4)  传入jquery对象
    // console.log($(".list li").eq(0).is($(".first")));





</script>

</html>